﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using vensoft.BussinesLogic;
using vensoft.Entities;

namespace vensoft.Win32
{
    public partial class frmGestionarVenta : Form
    {
        IVentaBL ventaBL;
        IClienteBL clienteBL;
        IEnlazarVentayDetalleBL detventaBL;

        public frmGestionarVenta()
        {
            InitializeComponent();
        }

        public List<Usuario> UsuarioActual { get; set; }

        private void btnNuevaVenta_Click(object sender, EventArgs e)
        {
            frmRegistrarVenta registrar = new frmRegistrarVenta();
            //registrar.Nuevo();
            registrar.UsuarioActual = UsuarioActual;
            registrar.Show();
            
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void frmGestionarVenta_Load(object sender, EventArgs e)
        {
            rdbFechas.Checked = true;           
            lblPersonal.Visible = false;
            txtNombPers.Visible = false;

            ventaBL = new VentaBL();
            ventaBindingSource.DataSource = ventaBL.GetAllFromVenta();
            Venta = ventaBL.GetAllFromVenta();
            txtTotalVentas.Text = Convert.ToString(Venta.Sum(d => d.Total));
        }

        List<Venta> Venta = new List<Entities.Venta>();

        private void btnBuscarVenta_Click(object sender, EventArgs e)
        {
            
            ventaBL = new VentaBL();
            if (rdbFechas.Checked == true)
            {
                ventaBindingSource.DataSource = ventaBL.GetAllFromVentaByFechas((Convert.ToDateTime(dtpDesde.Value.ToString())).AddDays(-1), Convert.ToDateTime(dtpHasta.Value.ToString()));
                Venta = ventaBL.GetAllFromVentaByFechas(Convert.ToDateTime(dtpDesde.Value.ToString()), Convert.ToDateTime(dtpHasta.Value.ToString()));
            }
            else if (rdbPersonal.Checked == true)
            {
                ventaBindingSource.DataSource = ventaBL.GetAllFromVentaByNombPers(txtNombPers.Text);                
                Venta = ventaBL.GetAllFromVentaByNombPers(txtNombPers.Text);
            }
             
            txtTotalVentas.Text = Convert.ToString(Venta.Sum(d => d.Total));
        }

        private void btnActualizarDatos_Click(object sender, EventArgs e)
        {
            ventaBL = new VentaBL();
            ventaBindingSource.DataSource = ventaBL.GetAllFromVenta();
            Venta = ventaBL.GetAllFromVenta();
            txtTotalVentas.Text = Convert.ToString(Venta.Sum(d => d.Total));
        }

        public Venta CurrentVenta
        {
            get { return ventaBindingSource.Current as Venta; }
            set
            {
                ventaBindingSource.DataSource = value;
            }
        }

        private void btnVerDetalleVenta_Click(object sender, EventArgs e)
        {
            frmDetallarVenta venta = new frmDetallarVenta();
            venta.CurrentVenta = ventaBindingSource.Current as Venta;
            clienteBL = new ClienteBL();
            venta.CurrentCliente = clienteBL.GetFromClienteByDescripcion(CurrentVenta.raz_soc);
            detventaBL = new EnlazarVentayDetalleBL();
            venta.DetalleVenta = detventaBL.GetAllFromDetalleByVentaId(CurrentVenta.Id);
            venta.CurrentUsuario = new Usuario();
            venta.CurrentUsuario.Nomb_Usuario = CurrentVenta.nombre_Pers;
            venta.CurrentUsuario.Cod_Personal = CurrentVenta.PersonalId;
            venta.ShowDialog();
        }

        private void rdbPersonal_CheckedChanged(object sender, EventArgs e)
        {
            if (rdbPersonal.Checked == true)
            {
                lblDesde.Visible = false;
                lblHasta.Visible = false;
                dtpDesde.Visible = false;
                dtpHasta.Visible = false;
                txtNombPers.Visible = true;
                lblPersonal.Visible = true;
                
            }
            else if (rdbFechas.Checked == true)
            {
                lblDesde.Visible = true;
                lblHasta.Visible = true;
                dtpDesde.Visible = true;
                dtpHasta.Visible = true;
                txtNombPers.Visible = false;
                lblPersonal.Visible = false;                
            }
        }
    }
}
